
typedef int (*completionProcCallBack)(void*user_data,int signal,int kind,const char*s);

typedef struct LCContext LCContext;


LCContext* LCC_init();
void LCC_free(LCContext*c);
int LCC_init_clang(LCContext *c);
int LCC_set_file(LCContext *c,const char*fname);
int LCC_set_match(LCContext*c,const char*m);
int LCC_add_argv(LCContext*c,const char*argv);
int LCC_set_tuopt(LCContext*c,int v);


int LCC_buffer_set(LCContext*c,int idx,const char*buf);
int LCC_buffer_removeAll(LCContext*c);
int LCC_buffer_getidx(LCContext*c,const char*name);
int LCC_buffer_add(LCContext*c,const char*fname,const char*buf);
int LCC_completion_proc(LCContext*c,const char*fname,int line,int col);
int LCC_completion_proc_callback(LCContext*c,const char*fname,int line,int col,void*user_data,completionProcCallBack cb);
int LCC_completion_get(LCContext*c,const char*fname,int line,int col);



